(PYTHON) Day - 18 Date and Time

Reference

  • 문제 출처 - HackerRank
  • 파이썬 연습 - Practice - Python

개인적인 생각과 상상으로 작성한 내용들이 포함되어 있습니다
문제를 풀고 Discussion Tab을 참고하며 코드 스타일을 개선하려고 노력하고자 합니다


HackerRank


Date and Time


기본 개념

Calendar 모듈

복사
import calendar as ca

# firstweekday는 달력의 시작 요일을 설정(0=월요일 ~ 6=일요일)

# formatmonth는 원하는 년도와 달력을 설정

print(ca.TextCalendar(firstweekday=6).formatmonth(2020, 3))
복사
March 2020
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

Calendar Module


문제 : 입력 날짜의 요일을 출력하는 문제
입력 : MM DD YYYY 형식으로 날짜 입력
출력 : 해당 요일을 대문자로 출력

08 05 2015

WEDNESDAY

calender 모듈을 사용하면 날짜와 관련된 문제들을 매우 쉽게 해결할 수 있다
calendar.day_name 메소드 클래스에는 월요일부터 일요일까지의 이름이 담겨있다
calendar.weekday(year, month, day) 함수는 해당 날짜의 요일 정보를 int 값으로 반환한다

복사
import calendar

mm, dd, yy = map(int, input().split())
date = calendar.weekday(yy, mm, dd)

print(calendar.day_name[date].upper())

Time Delta


입력 : Day dd Mon yyyy hh:mm:ss +xxxx 형식
출력 : abs(t1 - t2) 의 값

2
Sun 10 May 2015 13:54:36 -0700
Sun 10 May 2015 13:54:36 -0000
Sat 02 May 2015 19:54:36 +0530
Fri 01 May 2015 13:54:36 -0000

25200
88200

복사
from datetime import datetime
for \_ in range(int(input())):
t1=datetime.strptime(input(),'%a %d %b %Y %H:%M:%S %z')
t2=datetime.strptime(input(),'%a %d %b %Y %H:%M:%S %z')
print (int(abs((t1-t2).total_seconds())))